package KuangShen.ZhuJieHeFanShe;

import java.lang.annotation.*;

/*
元注解
元注解就是负责注解其他注解
一共有四个元注解
    @Target----------->描述注解的使用范围
    @Target({
    ElementType.CONSTRUCTOR,     构造方法
    ElementType.METHOD,          成员方法
    ElementType.PARAMETER,       方法参数
    ElementType.FIELD,           成员属性
    ElementType.ANNOTATION_TYPE  注解类
    })
    @Retention-------->表示在什么级别保存注释信息（级别有三个：SOURCE<ClASS<RUNTIME），用于描述的生命周期
    @Documented------->说明该注解将包含在javadoc中
    @Inherited-------->说明子类可以继承父类中的该注解
 */
//测试元注解

//使用注解
public class test02 {
    @MyAnnotation
    public void test(){

    }
}


//创建一个注解
@Target(value = {ElementType.METHOD,ElementType.TYPE})   //ElementType枚举类型，可以是方法，类...等。使用该注解的意思是，我的注解MyAnnotation将可以在方法,类中使用.
@Retention(value = RetentionPolicy.RUNTIME)      //@Retention  定义注解在运行时有效，一旦定义在运行时有效，在其他条件自然也有效（SOURCE<ClASS<RUNTIME），所以固定格式都是RUNTIME
@Documented  //表示注解是否将注解生成在JAVAdoc中
@Inherited   //子类可以继承父类中的该注解
@interface MyAnnotation{


}